#ifndef __CLIENT_SINGLE_H
#define __CLIENT_SINGLE_H

/* 客户端通信句柄容器，当前用户与通信句柄绑定 */

#include <unordered_map>
#include <mutex>
#include "stdTcpServer.h"

class ClientSingle
{
public:
    static ClientSingle* getInstance();

    /* 用户通信句柄添加 */
    void InsertClientInfo(std::string &username, StdTcpSocketPtr clientPtr);
    /* 获取目前用户句柄 */
    StdTcpSocketPtr GetTargetClientInfo(std::string &username);


private:
    ClientSingle(){}
private:
    std::mutex g_clientInfoMutex;   // 客户端通信全局锁
    std::unordered_map<std::string, StdTcpSocketPtr> m_clientInfoList;  // 客户端通信句柄容器
};

#endif